<template>
  <el-dialog
    title="分配角色"
    :visible="value"
    width="40%"
    @close="close"
  >
    <el-checkbox-group v-model="checkList">
      <el-checkbox v-for="item in enableList" :key="item.id" :label="item.id">
        {{ item.name }}
      </el-checkbox>
    </el-checkbox-group>
    <div style="text-align:center; margin-top: 15px">
      <el-button type="primary" size="small" @click="assignRoles">确定</el-button>
      <el-button size="small" @click="close">取消</el-button>
    </div>
  </el-dialog>
</template>

<script>
import { getRoleListEnabledRequest, assignRolesRequest, getEmployeeDetailRequest } from '@/api/employee'
export default {
  props: {
    value: {
      type: Boolean,
      required: true
    },
    id: {
      type: [String, Number],
      required: true
    }
  },
  data() {
    return {
      // 用户勾选的角色
      checkList: [],
      // 所有已启用的列表
      enableList: []
    }
  },
  created() {
    console.log('现在使用了v-if，creatd函数里面就可以获取最新的value值:', this.value)
    this.init()
  },
  methods: {
    async init() {
      // 这个请求是获取列表的
      const res = await getRoleListEnabledRequest()
      this.enableList = res.data

      // 获取当前用户的基本信息，里面有个属性roleIds，就是当前员工已有的角色
      const res2 = await getEmployeeDetailRequest(this.id)
      console.log(res2)
      this.checkList = res2.data.roleIds
    },
    close() {
      this.$emit('input', false)
    },
    async assignRoles() {
      await assignRolesRequest({ id: this.id, roleIds: this.checkList })
      this.close()
      // 刷新背后的列表-- 这里看不见角色数据，不需要刷新也可以
      // this.$emit('ASSIGN_SUCCESS')
    }
  }
}
</script>
